design and analysis of algorithms problems